A 분기된 역사 저장소의 시간선이 여러 개의 비선형 경로로 나뉘는 경우에 발생합니다. 일반적으로 기능 브랜치(예: news-hotfix)와 메인 브랜치가 공통 조상 이후 독립적으로 발전할 때 발생합니다. 이 분기 현상은 스냅샷의 복잡한 내부 구조를 만듭니다.
1. 분기의 원인
개발자가 로컬 브랜치에서 git commit 을 실행하는 순간부터 분기가 시작됩니다. 동시에 상류 브랜치도 새로운 스냅샷(예: index.html)을 받게 되면 생성됩니다. 이로 인해 위치적 격차 가 발생하여, 당신이 about/me.html 에서 작업한 내용이 최신 프로젝트 상태를 기반으로 하지 않게 됩니다.
2. 비선형성의 비용
Git은 분기를 재귀 병합을 통해 처리하지만, 결과적으로 "브랜치 병합..." 등의 커밋으로 가득 찬 기록이 생깁니다. 이로 인해 저장소 기록 감사하기 어렵게 만들며, git add 및 git commit 과 같은 파일들 사이의 동작 순서가 시각적으로 교차하게 됩니다. news-2.html 및 about/me.html 시각적으로 교차하게 됩니다.
3. 스냅샷 단절
모든 커밋은 완전한 스냅샷을 생성합니다. 역사가 분기되면, 기능 브랜치의 내부 구성 은 다른 곳에서 동시적으로 이루어진 변경 사항의 맥락을 갖지 못하게 되어, 프로젝트 시간선을 다시 맞추기 위해 리베이싱과 같은 전략이 필요하게 됩니다.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>